/**
 * 给定数组A和B，付出Ai代价可以拿到Bi的收益
 * 从A1开始，如果略过需要付出1的代价，只能选一个
 * 问代价不超过T的情况下，最大收益是多少
 * 做一个for循环枚举一下即可
 */
#include <bits/stdc++.h>
using namespace std;

using llt = long long;
using pii = pair<llt, llt>;

int N, T;
vector<pii> A;

int proc(){
    int ans = -1;
    int used = 0;
    int tmp = 0;
    for(int i=1;i<=N;++i){
        const auto & p = A[i - 1];
        if(used + p.first <= T){
            if(-1 == ans or tmp < p.second){
                ans = i;
                tmp = p.second;
            }
        }
        ++used;
    }
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase; cin >> nofkase;
    while(nofkase--){
        cin >> N >> T;
        A.assign(N, {});
        for(auto & p : A) cin >> p.first;
        for(auto & p : A) cin >> p.second;
        cout << proc() << endl;
    }
    return 0;
}